package com.awesome.common.base.mvvm

/**
 * Author: JFangZ
 * Email: janezhang1901@163.com
 * Date: 2021/5/19 14:11
 * Description:类描述
 */
internal enum class LiveDataStatus {
    /**
     * 数据状态发生改变之前
     * 当进行数据处理操作(请求网络，查询数据库...）操作发生之前
     */
    START,

    /**
     * 数据状态改变成功
     * 当数据成功获取并赋值成功
     * 调用[androidx.lifecycle.MutableLiveData.setValue]后的状态
     */
    SUCCESS,

    /**
     * 数据状态改变失败
     * 当数据处理操作(请求网络，查询数据库...）执行失败时，
     * 不建议调用 [androidx.lifecycle.MutableLiveData.setValue]
     */
    ERROR;

    /**
     * 每个状态包含一个消息默认为自身String
     */
    val state: StateModel by lazy { StateModel() }

    fun setMessage(code: Int, message: String): LiveDataStatus {
        state.code = code
        state.msg = message
        return this
    }


}

internal data class StateModel(var code: Int = -1, var msg: String = "")